package com.joker.demo.core.domain.enums;


/**
 * 路由枚举策略
 *
 * @author : feixiang.li
 * @since : 2025-07-23 21:29
 */
public enum JobRoutePolicyEnum {

    /**
     * 默认路由策略
     * 1.谁先执行，以后一直是他
     * 轮询、
     * 随机、
     * 一致性HASH、
     * 最不经常使用、
     * 最近最久未使用
     */
    DEFAULT(1, "默认路由策略"),
    ROUND_ROBIN(2, "轮询"),
    RANDOM(3, "随机"),
    CONSISTENT_HASH(4, "一致性HASH"),
    LEAST_FREQUENTLY_USED(5, "最不经常使用"),
    RECENTLY_LEAST_USED(6, "最近最久未使用");
    private final Integer code;
    private final String desc;

    JobRoutePolicyEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public Integer getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    public static JobRoutePolicyEnum getByCode(Integer code) {
        for (JobRoutePolicyEnum value : JobRoutePolicyEnum.values()) {
            if (value.code.equals(code)) {
                return value;
            }
        }
        return null;
    }
}
